#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <stdlib.h>

int main()
{
    for(int i = 0; i < 8; i++) {
        printf("parent i = %d\n", i);
    }
    
    // 创建子进程
    pid_t pid = fork();

    // 子进程执行 ls
    if(pid == 0) {
        // ls -la 使用的是子进程的地址空间
        // execl("/bin/ls", "666", "-lah", NULL);  --> 通常不会这么写
        // execl("/bin/ls", "ls", "-lah", NULL);
        execlp("ps", "ps", "aux", NULL);
        perror("execlp");  // 如果 execlp 执行成功，perror 不会执行
        exit(1);
    }

    // 由父进程实现
    for(int i = 0; i < 3; i++) {
        printf("+++++++ i = %d\n", i);
    }

    return 0;
}

